#ifndef EXTRACTOR_H
#define EXTRACTOR_H

#include <opencv2/opencv.hpp>
#include <vector>
#include <string>

#include "PedestrianBox.h"

class NetworkDetect{
public:    
    NetworkDetect(){};
    ~NetworkDetect(){};
    virtual int init(const std::string& weight_path){};
    virtual int detect(const std::vector<cv::Mat>& imgs, std::vector<std::vector<Detection>>& dets, int predict_h, int predict_w)=0;
    
protected:
    void *handle;
};


class NetworkFeatExtract{
public:
    NetworkFeatExtract(){};
    virtual int init(std::string weights){};
    virtual std::vector<std::vector<float>> extract(std::vector<cv::Mat> & img)=0;
    ~NetworkFeatExtract(){};
protected:
    void *handle;
};


#endif //EXTRACTOR_H
